import uvicorn
from fastapi import FastAPI,WebSocket

app = FastAPI()


#绑定路由,监听来自websocket协议的路由
@app.websocket("/api")  #访问这个接口需要的地址 ws://127.0.0.1:8088/api
async def api(websocket:WebSocket):
    #等待客户端的websocket请求连接
    await websocket.accept()
    while True:
        # await websocket.receive_json()接收客户端通过websocket协议上传过来的json数据
        # await websocket.receive_text()接收客户端通过websocket协议上传过来的文本数据
        # await websocket.receive bvtes()接收客户端通过websocket协议上传过来的二进制数据[文件/图片/语音]
        data = await websocket.receive_json()
        print("接收到来自客户端的数据:",data)
        # await websocket.send_text 使用websocket协议把文本数据发送给客户端
        # await websocket.send_json 使用websocket协议把json数据发送给客户端
        # await websocket.send_bytes 使用websocket协议把二进制数据发送给客户端[文件/图片/语音]
        await websocket.send_json(f"您刚才问的是:{data['message']}")

if __name__ == '__main__':
    uvicorn.run("ws_demo:app",host='0.0.0.0',port=8088)